using System;

namespace PHSRAG.Insight21.Agreements
{
	/// <summary>
	/// Summary description for Constants.
	/// </summary>
	public class AgreementConstants
	{
		#region Class Variables

		#region Common
		private static int detailPageLevelValue = 2;

		#region Sort Order Text
		private const string sortOrderDescending					= "DESC";
		private const string sortOrderAscending						= "ASC";
		#endregion	

		#region Style for expanding grid
		private const string gridItemExpanded				= "GridItemExpanded";
		private const string gridAltItemExpanded			= "GridAltItemExpanded";
		private const string innerRadioButton				= "innerRadioButton";
		private const string innerRadioButtonExpanded		= "innerRadioButtonExpanded";
		private const string expandedGridDeficitStyle		= "expandingGridDeficitAmount";		
		private const string expandingGridCurrencyStyle		= "expandingGridCurrency";
		private const string deficitStyle					= "deficit";
		private const string currencyStyle					= "currency";
		#endregion
		
		#endregion
		
		#region Projections

		// table names for projections
		private const string personnelBudgetTableName		= "PersonnnelBudget";
		private const string personnelBudgetTotalsTableName = "PersonnnelBudgetTotals";
		private const string projectionsTotalTableName		= "ProjectionsTotal";

		// column names for projection totals
		private const string currentBalanceColName			= "CurrentBalance";
		private const string currentObligationsColName		= "CurrentObligations";
		private const string estimatedEndingBalanceColName	= "EstimatedEndingBalance";

		// Column Names for expanded data grid master details and other tables
		private const string	categoryIDColName				= "CategoryID";
		private const string	accountIDColName				= "AccountID";
		private const string	expenseCategoryColName			= "ExpenseCategory";
		private const string	accountTypeColName				= "AccountType";
		private const string	budgetForCurrentPeriodColName	= "BudgetForCurrentPeriod";

		private const string	expenseToDateColName			= "ExpenseToDate";
		private const string	additionalAmountColName			= "AdditionalAmount";
		private const string	encumbrancesColName				= "Encumbrances";
		private const string	balanceColName					= "Balance";

		private const string	estimatedExpensesColName		= "EstimatedExpenses";
		private const string	monthsRemainingColName			= "MonthsRemaining";
        private const string    indirectCostRateColName         = "IndirectCostRate";
        private const string    indirectCostFlagColName         = "IndirectCostFlag";
		private const string	monthsInPeriod					= "MonthsInPeriod";
		private const string	totalCommittedColName			= "TotalCommitted";
		private const string	sortOrderColName				= "SortOrder";
		
		// Column Names for Cash Balance
		private const string	cashBalanceColName				= "CashBalance";
		private const string	additionalCashBalanceColName	= "AdditionalCashBalance";

		// Column Names for FooterTables
		private const string	revenueColName					= "Revenue";
		private const string	priorYearBalanceColName			= "PriorYearBalance";

		// Column Names for Personnel Budget
		private const string	projectSalaryColName			= "ProjectSalary";
		private const string	monthlyRateColName				= "MonthlyRate";
		private const string	committedSalaryColName			= "CommittedSalary";
		private const string	committedFringeColName			= "CommittedFringe";		
		
		#endregion	

		# region Salaries Overview
		
		#region Totals for Salaries Overview
		
		private const string totalAnnualRate		= "TotalAnnualRate" ;
		private const string totalMonthlyRate		= "TotalMonthlyRate";
		private const string totalCommittedSalary	= "TotalCommittedSalary"  ;
		private const string totalCommittedFringe	= "TotalCommittedFringe"  ;
		private const string totalTotalCommitted	= "TotalTotalCommitted" ;
		private const string totalPaidToDate		= "TotalPaidToDate" ;
        
		#endregion

		#region Salaries Overview Data Columns
		public static string lastName			= "LastName";
		public static string firstName			= "FirstName";
		public static string fundNumber			= "FundNumber";
		public static string annualRate			= "AnnualRate";
		public static string startDate			= "StartDate";
		public static string endDate			= "EndDate";
		public static string monthlyRate		= "MonthlyRate";
		public static string monthsRemaining	= "MonthsRemaining";
		public static string committedSalary	= "CommittedSalary";
		public static string fringeRate			= "FringeRate";
		public static string committedFringe	= "CommittedFringe";
		public static string totalCommitted		= "TotalCommitted";
		public static string paidToDate			= "PaidToDate";
		public static string sponsorEffort		= "SponsorEffort";
		public static string trackedEffort		= "TrackedEffort";
		#endregion
		
		#endregion

		#endregion

		#region Class Properties

		#region Common
		public static int DetailPageLevelValue
		{
			get{return detailPageLevelValue;}
		}
		
		#region SortOrderText
		///<summary>Default style for negative numbers</summary>
		public static string SortOrderDescending					{ get { return sortOrderDescending; } }

		///<summary>Default style for negative numbers</summary>
		public static string SortOrderAscending						{ get { return sortOrderAscending; } }
		#endregion

		#region Style for expanding grid
		
		public static string GridItemExpanded
		{
			get{return gridItemExpanded;}
		}

		public static string GridAltItemExpanded
		{
			get{return gridAltItemExpanded;}
		}

		public static string InnerRadioButton
		{
			get{return innerRadioButton;}
		}

		public static string InnerRadioButtonExpanded
		{
			get{return innerRadioButtonExpanded;}
		}

		public static string ExpandedGridDeficitStyle
		{
			get{return expandedGridDeficitStyle;}
		}

		public static string ExpandedGridCurrencyStyle
		{
			get{return expandingGridCurrencyStyle;}
		}

		public static string DeficitStyle
		{
			get{return deficitStyle;}
		}

		public static string CurrencyStyle
		{
			get{return currencyStyle;}
		}

		#endregion

		#endregion
		
		#region Projections

		public static string PersonnelBudgetTableName
		{
			get{return personnelBudgetTableName;}
		}

		public static string PersonnelBudgetTotalsTableName
		{
			get{return personnelBudgetTotalsTableName;}
		}

		public static string ProjectionsTotalTableName
		{
			get{return projectionsTotalTableName;}
		}

		#region Column Names
		// projection totals
		public static string CurrentBalanceColName
		{
			get{return currentBalanceColName;}
		}

		public static string CurrentObligationsColName
		{
			get{return currentObligationsColName;}
		}

		public static string EstimatedEndingBalanceColName
		{
			get{return estimatedEndingBalanceColName;}
		}
		
		// Column Names for expanded data grid master details and other tables
		public static string CategoryIDColName
		{
			get{return categoryIDColName;}
		}
	
		public static string AccountIDColName
		{
			get{return accountIDColName;}
		}

		public static string ExpenseCategoryColName
		{
			get{return expenseCategoryColName;}
		}

		public static string AccountTypeColName
		{
			get{return accountTypeColName;}
		}

		public static string BudgetForCurrentPeriodColName
		{
			get{return budgetForCurrentPeriodColName;}
		}

		public static string ExpenseToDateColName
		{
			get{return expenseToDateColName;}
		}

		public static string AdditionalAmountColName
		{
			get{return additionalAmountColName;}
		}
		
		public static string EncumbrancesColName
		{
			get{return encumbrancesColName;}
		}

		public static string BalanceColName
		{
			get{return balanceColName;}
		}

		public static string EstimatedExpensesColName
		{
			get{return estimatedExpensesColName;}
		}

		public static string MonthsRemainingColName
		{
			get{return monthsRemainingColName;}
		}

        public static string IndirectCostRateColName
        {
            get { return indirectCostRateColName; }
        }

        public static string IndirectCostFlagColName
        {
            get { return indirectCostFlagColName; }
        }

		public static string MonthsInPeriod
		{
			get{return monthsInPeriod;}
		}

		public static string SortOrderColName
		{
			get{return sortOrderColName;}
		}

		// Column Names for personnel for current budget
		public static string TotalCommittedColName
		{
			get{return totalCommittedColName;}
		}
		
		// Column Names for cash balance, revenue, and prior yr balance table
		
		public static string CashBalanceColName
		{
			get{return cashBalanceColName;}
		}

		public static string AdditionalCashBalanceColName
		{
			get{return additionalCashBalanceColName;}
		}

		public static string RevenueColName
		{
			get{return revenueColName;}
		}

		public static string PriorYearBalanceColName
		{
			get{return priorYearBalanceColName;}
		}
		
		// Column Names for personnel for current budget
		
		public static string ProjectSalaryColName
		{
			get{return projectSalaryColName;}
		}

		public static string MonthlyRateColName
		{
			get{return monthlyRateColName;}
		}

		public static string CommittedSalaryColName
		{
			get{return committedSalaryColName;}
		}

		public static string CommittedFringeColName
		{
			get{return committedFringeColName;}
		}
		
		#endregion

		#endregion	

		#region Salaries Overview
		
		#region Salaries Overview Data Columns
		
		public static string LastName
		{
			get{return lastName;}
		}

		public static string FirstName
		{
			get{return firstName;}
		}

		public static string FundNumber
		{
			get{return fundNumber;}
		}

		public static string AnnualRate
		{
			get{return annualRate;}
		}
		public static string StartDate
		{
			get{return startDate;}
		}

		public static string EndDate
		{
			get{return endDate;}
		}

		public static string MonthlyRate
		{
			get{return monthlyRate;}
		}

		public static string MonthsRemaining
		{
			get{return monthsRemaining;}
		}


		public static string CommittedSalary
		{
			get{return committedSalary;}
		}

		public static string FringeRate
		{
			get{return fringeRate;}
		}
		public static string CommittedFringe
		{
			get{return committedFringe;}
		}

		public static string TotalCommitted
		{
			get{return totalCommitted;}
		}

		public static string PaidToDate
		{
			get{return paidToDate;}
		}

		public static string SponsorEffort
		{
			get{return sponsorEffort;}
		}
		public static string TrackedEffort
		{
			get{return trackedEffort;}
		}
		#endregion
		
		#region totals
		public static string TotalAnnualRate
		{
			get{return totalAnnualRate;}
		}
		
		public static string TotalMonthlyRate
		{
			get{return totalMonthlyRate;}
		}

		public static string TotalCommittedSalary
		{
			get{return totalCommittedSalary;}
		}

		public static string TotalCommittedFringe
		{
			get{return totalCommittedFringe;}
		}

		public static string TotalTotalCommitted
		{
			get{return totalTotalCommitted;}
		}

		public static string TotalPaidToDate
		{
			get{return totalPaidToDate;}
		}
		#endregion

		#endregion

		#endregion		
		
		#region Constructor(Private)
		private AgreementConstants()
		{
			
		}
		#endregion

		#region Budget Overview and Details Constants
		public class BudgetInfoConstants
		{
			public static string CategoryTableName			= "CategoryTable";
			public static string CategoryIDColumnName		= "CategoryID";
			public static string AccountIDColumnName		= "AccountID";
			public static string CategoryColumnName			= "Category";
			public static string BudgetColumnName			= "Budget";
			public static string ExpenseColumnName			= "Expense";
			public static string EncumbranceColumnName		= "Encumbrance";
			public static string BalanceAvailableColumnName	= "BalanceAvailable";
			public static string UserOrderCategoryTableName	= "UserOrder";
		}
		#endregion

		#region Expense Overview and Details Constants
		public class ExpenseInfoConstants
		{
			public static string FundsPerMonthTableName			= "FundsInMonth";
			public static string CategoryTotalTableName			= "CategoryTotal";
			public static string AccountTotalTableName			= "AccountsTotal";
			public static string DirectCostBalanceTableName		= "DirectCostBalance";
			public static string FooterTotalsTableName			= "GrandTotals";

			public static string CategoryIDColumnName			= "CategoryID";
			public static string AccountIDColumnName			= "AccountID";
			public static string AccountNumberColumnName		= "AccountNumber";
			public static string CategoryColumnName				= "CategoryName";
			public static string AccountColumnName					= "AccountName";
			public static string TotalExpenseAmountColumnName	= "TotalExpenseAmount";
			public static string ExpenseAmountColumnName		= "ExpenseAmount";
			public static string ExpenseMonthColumnName			= "ExpenseMonth";
			public static string NoOfFundsColumnName			= "FundCount";

			public static string DirectCostsTotalColumnName			= "DirectCostsTotal";
			public static string DirectCostBalanceTotalColumnName	= "DirectCostBalanceTotal";
			public static string IndirectCostsTotalColumnName		= "IndirectCostsTotal";
			public static string TotalCostsTotalColumnName			= "TotalCostsTotal";
			public static string RevenueTotalColumnName				= "RevenueTotal";
			public static string CashBalanceTotalColumnName			= "CashBalanceTotal";


			public static string RevenueLink					= "RevenueLink";
			public static string CashBalanceLink				= "CashBalanceLink";

			public static string ActiveDataKey					= "ActiveDataKey_aee2bc5e-01ba-4779-b7d5-f3bbab7a3761";
			public static string ActiveDataForDownloadKey					= "ActiveDataForDownloadKey_aee2bc5e-01ba-4779-b7d5-f3bbab7a3761";
		}
		#endregion
	}
}
